package br.cs.correspondente.servicos;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.ResourceBundle;

/**
 * Utilitário para recuperação de propriedadesd e configuração (Propriedades.properties e Mail.properties)
 * @author Gabriel
 */
public class ResourceBundleUtil {
    private static ResourceBundle propriedades = ResourceBundle.getBundle("Propriedades");

    /**
     * Retorna o valor da proriedades definida pela chave passada como parâmetro
     * @param key
     * @return
     */
    public static String getPropriedade(String key){
        return propriedades.getString(key);
    }

    /**
     * Retorna a propriedades já convertendo para o formato Long
     * @param key
     * @return
     */
    public static Long getPropriedadesAsLong(String key){
        return Long.parseLong(getPropriedade(key));
    }

    /**
     *
     * @param key
     * @return boolean representando se a propriedades representada pela chave existe ou não
     */
    public static boolean containsPropriedade(String key){
        return propriedades.containsKey(key);
    }

    /**
     * @return um arquivo Properties que representa o ResourceBundle
     */
    public static Properties getPropriedadesProperties() {
        return getBundleAsProperty("Propriedades.properties");
    }

    /**
     * Converte um ResourceBundle em um Properties
     * @param bundle
     * @return
     */
    private static Properties getBundleAsProperty(String bundle){
        InputStream is = ResourceBundleUtil.class.getClassLoader().getResourceAsStream(bundle);
        Properties pp = new Properties();
        try {
            pp.load(is);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return pp;
    }
    

}